1. Field of the Invention
The present invention relates to a video data transfer apparatus, and, more particularly, to a video data transfer apparatus suitable for transferring video data to a printer engine from a frame memory.
2. Description of the Related Art
One conventional tandem type color printer is equipped with four independent video transfer circuits respectively associated with video data of yellow, magenta, cyan and black. In this printer, the individual video transfer circuits transfer video data to a printer engine from a frame memory.
FIG. 13 is a block diagram showing the schematic structure of a video transfer section of the conventional tandem type color printer. In the structure illustrated in FIG. 13, one frame of video data of yellow (Y), magenta (M), cyan (C) and black (K) are stored in a DRAM 101. The yellow video data is transferred to a color printer engine 106 by a DMAC (Dynamic Memory Access Controller) 102 for yellow (hereinafter called Y-DMAC 102). The magenta video data is transferred to the color printer engine 106 by a DMAC 103 for magenta (hereinafter called M-DMAC 103). The cyan video data is transferred to the color printer engine 106 by a DMAC 104 for cyan (hereinafter called C-DMAC 104). The black video data is transferred to the color printer engine 106 by a DMAC 105 for black (hereinafter called K-DMAC 105).
In a case of implementing fast video data transfer to permit a tandem type color printer having this structure and a resolution of, for example, 300 dpi to operate in burst mode (the operation mode to output four consecutive addresses in a single access), each of the Y-DMAC 102, the M-DMAC 103, the C-DMAC 104 and the K-DMAC 105 requires a data capacity of 32-bit latchxc3x974 (quantity)xc3x972 (lines).
If this scheme is applied to a high-resolution tandem type color printer with a resolution of, for example, 600 dpi, each of the Y-DMAC 102, the M-DMAC 103, the C-DMAC 104 and the K-DMAC 105 requires a data capacity of 64-bit latchxc3x974 (quantity)xc3x972 (lines). Therefore, the total capacity of the whole DMACs is 64-bit latchxc3x974 (quantity)xc3x972 (lines)xc3x974 (colors) or 2048 bits.
The conventional tandem type color printer, as apparent from the above, requires that the capacity of each of the Y-DMAC 102, the M-DMAC 103, the C-DMAC 104 and the K-DMAC 105 should be increased in order to transfer video data fast to the color printer engine 106 from the DRAM 101 or adapt this printer to a high-resolution printer. This suffers an increase in the circuit scale.
If video data stored in the DRAM 101 has been compressed in advance, an expander or a decompressor should be provided at the previous stage of each of the Y-DMAC 102, the M-DMAC 103, the C-DMAC 104 and the K-DMAC 105. In this case, the circuit scale becomes larger.
A variation in the operation speeds of the Y-DMAC 102, the M-DMAC 103, the C-DMAC 104 and the K-DMAC 105, if any, results in an overrun error in which before the slowest one of the four DMACs completes the necessary operation, the other DMACs start the next operations.
Accordingly, it is an object of the present invention to provide a video data transfer apparatus capable of transferring video data fast while suppressing an increase in the circuit scale.
To achieve the above object, according to a first aspect of this invention, there is provided a video data transfer apparatus comprising:
a frame memory where plural pieces of video data representing images of different colors;
a video buffer for storing every predetermined amount of video data supplied thereto;
read control means for accessing the video buffer to read video data stored in the frame memory and representing images of individual colors, color by color, and supplying the read video data to the video buffer; and
a plurality of video transfer means for accessing the video buffer and transferring those of the video data stored in the video buffer which represent images of different colors to a printer engine.
This structure can allow a plurality of video transfer means to share a single video buffer and make it unnecessary to provide a video buffer for each video transfer means. The use of a fast-readable video buffer therefore accomplishes fast transfer of video data to the printer engine while suppressing an increase in the circuit scale. If the frame memory is constituted by a DRAM, the use of, for example, an SRAM for the video buffer implements fast reading of video data.
According to a second aspect of this invention, there is provided a video data transfer apparatus for sequentially transferring each piece of video data representing each color component of an image having a plurality of colors to a printer engine for sequentially generating a transfer request for the each piece of video data and sequentially acquiring the each piece of video data supplied thereto, which apparatus comprises:
a frame memory for storing the each piece of video data representing the each color component;
a video buffer for storing every predetermined amount of video data supplied thereto;
video transfer means for accessing the video buffer and transferring the video data stored in the video buffer to the printer engine in a supply order of the video data to the video buffer, in response to the transfer request generated by the printer engine; and
read control means for sequentially reading the video data, stored in the frame memory and representing images of individual colors, color by color, and accessing the video buffer to sequentially supply the read video data to the video buffer.
This structure can allow a plurality of video transfer means to share a single video buffer and make it unnecessary to provide a video buffer for each video transfer means. The use of a fast-readable video buffer therefore permits video data to be sequentially transferred fast to the printer engine while suppressing an increase in the circuit scale.
According to a third aspect of this invention, there is provided a video data transfer apparatus for transferring video data representing an image to a printer engine from a frame memory having an area for storing the video data, which apparatus comprises:
read address generation means for generating a read address for designating that of areas in the frame memory from which the video data is to be read out;
a video buffer having an area for storing a predetermined amount of video data;
write counter means for generating a write address for designating that of areas in the video buffer in which the video data is to be written;
write control means for, when generating an access request to the video buffer and access permission is granted, reading video data from the area in the frame memory indicated by the read address and writing the read video data in the area in the video buffer indicated by the write address;
read control means for, when generating an access request to the video buffer and access permission is granted, reading the video data from the video buffer;
read end signal generation means for generating a read end signal in response to reading of the predetermined amount of video data from the video buffer by the read control mans;
transfer means for transferring the video data read by the read control means to the printer engine;
write instruction means for generating an instruction to write next video data in the video buffer with respect to the write control means based on the read end signal; and
access control means for granting access permission to one of the write control means and the read control means which have generated the access requests to the video buffer,
the write control means having means generating the access request to the video buffer in response to the instruction generated by the write instruction means.
This structure can permit a plurality of read control means to share a single video buffer, thus making it possible to reduce the circuit scale needed to transfer data to the printer engine.
Even in a case where the access control means controls a plurality of accesses to the video buffer so as for a plurality of read control means to share a single video buffer, access collision to the video buffer can be prevented. This can ensure proper data transfer to the printer engine.
The time for reading video data from the frame memory is shortened by providing read address generation means for generating a read address for designating that of areas in the frame memory from which the video data is to be read out, and write counter means for generating a write address for designating that of areas in the video buffer in which the video data is to be written, and by transferring the video data, stored in the frame memory, directly to the video buffer. Therefore, the video data stored in the frame memory is transferred fast to the printer engine.
Further, the video data stored in the frame memory is sequentially supplied to the video buffer by generating a read end signal upon completion of the reading of the video buffer from the video buffer and by writing next video data in the video buffer based on this read end signal. This allows fast data transfer to the printer engine without delay.
According to one modification, the video data transfer apparatus may further comprise access control means for permitting the read control means and each of the video transfer means to access the video buffer based on an access requests generated by the read control means and each video transfer means; and
wherein the read control means and each of the video transfer means may have means for gaining access to the video buffer when the access requests are generated and access to the video buffer is permitted.
With this structure, even in a case where the read control means and a plurality of video transfer means individually access the video buffer, collision of access to the video buffer by the read control means and access to the video buffer by the video transfer means can be avoided. This can ensure proper data transfer when a single video buffer is shared by a plurality of video transfer means.
According to another modification, the video data transfer apparatus may further comprise:
read address generation means for generating a read address for designating that of areas in the frame memory from which the video data is to be read out, and
write counter means for generating a write address for designating that of areas in the video buffer in which the video data is to be written,
the read control means may have means for reading that of the video data stored in the frame memory which is stored at the area indicated by the read address, and
the video buffer may have means for storing video data supplied thereto in the area indicated by the write address. This structure shortens the time for reading video data from the frame memory. It is thus possible to transfer video data, stored in the frame memory, fast to the printer engine.
According to a further modification of the video data transfer apparatus, each of the video transfer means may have transfer end signal generation means for generating a transfer end signal in response to the predetermined amount of video data having been transferred from the video buffer; and
the video buffer may have means for storing video data supplied thereto based on the transfer end signal.
With this structure, the video data stored in the frame memory is sequentially supplied to the video buffer, thus ensuring fast data transfer to the printer engine without delay.
According to a still further modification of the video data transfer apparatus, the video buffer may comprise:
means for securing areas for storing plural pieces of video data representing images of the same colors; and
means for storing video data, supplied thereto, in an area other than those areas where video data whose transfer by the video transfer means has not been completed yet.
Therefore, data transfer to the printer engine can be implemented without delay by, during transfer of video data, writing video data of the same color as the video data being transferred.
According to a yet still further modification of the video data transfer apparatus, the read control means may have write detection means for detecting the video data having been supplied to the video buffer and generating a write end signal; and
each of the video transfer means may have means for accessing the video buffer in response to the write end signal.
This structure executes data transfer to the printer engine immediately after data writing in the video buffer, so that data transfer to the printer engine is carried out without delay and an overrun error is avoided.
According to a still further modification, the video data transfer apparatus may further comprise means for supplying a signal instructing a transfer start to the printer engine; and
when receiving the signal instructing the transfer start, the printer engine may start an operation for generating a transfer request in response to the signal.
According to a fourth aspect of this invention, there is provided a video data transfer method which comprises:
a frame storage step of storing plural pieces of video data representing images of different colors;
a buffer step of storing every predetermined amount of video data supplied;
a read control step of accessing the buffer step to read video data, stored by the frame storage step and representing images of individual colors, color by color, and supplying the read video data to the video buffer; and
a plurality of video transfer steps of accessing the buffer step and transferring those of the video data stored by the buffer step which represent images of different colors to a printer engine.
This structure can allow a plurality of video transfer means to share a single video buffer and make it unnecessary to provide a video buffer for each video transfer means. The use of a fast-readable video buffer therefore accomplishes fast transfer of video data to the printer engine while suppressing an increase in the circuit scale.
According to a fifth aspect of this invention, there is provided a video data transfer method of sequentially transferring each piece of video data representing each color component of an image having a plurality of colors to a printer engine for sequentially generating a transfer request for the each piece of video data and sequentially acquiring the each piece of video data supplied thereto, which method comprises:
a frame storage step of storing the each piece of video data representing the each color component;
a buffer step of storing every predetermined amount of video data supplied;
a video transfer step of accessing the buffer step and transferring the video data stored by the buffer step to the printer engine in a supply order of the video data to the buffer step, in response to the transfer request generated by the printer engine; and
a read control step of sequentially reading the video data, stored by the frame storage step and representing images of individual colors, color by color, and accessing the buffer step to sequentially supply the read video data to the buffer step.
This structure can allow a plurality of video transfer steps to share a single video buffer and make it unnecessary to provide a video buffer for each video transfer step. The use of a fast-readable video buffer therefore permits video data to be sequentially transferred fast to the printer engine while suppressing an increase in the circuit scale.
According to a sixth aspect of this invention, there is provided a video data transfer method of transferring video data representing an image to a printer engine from a frame storage step having an area for storing the video data, which method comprises:
a read address generation step of generating a read address for designating that of areas in the frame storage step from which the video data is to be read out;
a buffer step having an area for storing a predetermined amount of video data;
a write counter step of generating a write address for designating that of areas in the buffer step in which the video data is to be written;
a write control step of, when generating an access request to the buffer step and access permission is granted, reading video data from the area in the frame storage step indicated by the read address and writing the read video data in the area in the buffer step indicated by the write address;
a read control step of, when generating an access request to the buffer step and access permission is granted, reading the video data from the buffer step;
a read end signal generation step of generating a read end signal in response to reading of the predetermined amount of video data in the buffer step by the read control step;
a transfer step of transferring the video data read by the read control step to the printer engine;
a write instruction step of generating an instruction to write next video data in the buffer step with respect to the write control step based on the read end signal; and
an access control step of granting access permission to one of the write control step and the read control step which have generated the access requests to the buffer step,
the write control step having a step of generating the access request to the buffer step in response to the instruction generated by the write instruction step.
This structure can permit a plurality of read control means to share a single video buffer, thus making it possible to reduce the circuit scale needed to transfer data to the printer engine.
Even in a case where the access control means controls a plurality of accesses to the video buffer so as for a plurality of read control means to share a single video buffer, access collision to the video buffer can be prevented. This can ensure proper data transfer to the printer engine.
The time for reading video data from the frame memory is shortened by providing read address generation means for generating a read address for designating that of areas in the frame memory from which the video data is to be read out, and write counter means for generating a write address for designating that of areas in the video buffer in which the video data is to be written, and by transferring the video data, stored in the frame memory, directly to the video buffer. Therefore, the video data stored in the frame memory is transferred fast to the printer engine.
Further, the video data stored in the frame memory is sequentially supplied to the video buffer by generating a read end signal upon completion of the reading of the video buffer from the video buffer and by writing next video data in the video buffer based on this read end signal. This allows fast data transfer to the printer engine without delay.